/* --------------------------------------------------- ABM CICLOS LECTIVOS----------------------------------------------------------------*/
$(document).ready(function(){
	var oTable1 = $('#sample-table-2').dataTable({
		//Permite o no guardar el numero de pagina que estaba seleccionada mediante una cookie y al recargar no se pierde la seleccion
		"bStateSave":true,
		//Permite poner los elementos del combo para cambiar la cantidad de filas a visualizar
		"aLengthMenu": [[30, 10, 25, -1], [30, 10, 25, "Todos"]],
		//Cantidad de filas de la tabla por pagina
		"iDisplayLength":30,
		//Ordena las filas por el valor de la columna n de forma ascendente o descendente. La columna inicial es la 0
		"aaSorting": [[ 1, "asc" ]],
		//Para que los mensajes se muestren en español
		"oLanguage": {
			"sProcessing":   "Procesando...",
			"sLengthMenu":   "Mostrar _MENU_ registros",
			"sZeroRecords":  "No se encontraron resultados",
			"sInfo":         "Mostrando desde _START_ hasta _END_ de _TOTAL_ registros",
			"sInfoEmpty":    "Mostrando desde 0 hasta 0 de 0 registros",
			"sInfoFiltered": "(filtrado de _MAX_ registros en total)",
			"sInfoPostFix":  "",
			"sSearch":       "Buscar:",
			"sUrl":          "",
			"oPaginate": {
				"sFirst":    "Primero",
				"sPrevious": "Anterior",
				"sNext":     "Siguiente",
				"sLast":     "&Uacute;ltimo"
			}
		},
		
		"aoColumns": [
		  { "bSortable": false }, { "bSortable": true }, { "bSortable": true }, { "bSortable": true },
		  { "bSortable": true } 
		]
	});
	
	$('table th input:checkbox').on('click' , function(){
		var that = this;
		$(this).closest('table').find('tr > td:first-child input:checkbox')
		.each(function(){
			this.checked = that.checked;
			$(this).closest('tr').toggleClass('selected');
		});
	});
});

/*Este metodo se llama cuando en el metodo consultar ciclos lectivos se aprieta el boton eliminar de cada registro*/
function eliminarCicloLectivo(url, nombre){
	var resp = confirm("Realmente desea eliminar al ciclo lectivo: '"+nombre+"'?");
	if(resp == true){
		$("#cuerpo").load(url, function(){});
	}
}

//Este metodo se llama cuando se tiene que limpiar el formulario
function limpiarCampos(){
	var nombre = document.getElementById("nombre");
	var descripcion = document.getElementById("descripcion");
	var estado = document.getElementById("estado");
	
	//Inicializamos todos campos a vacios.		
	//$('#cliente').val('0');
	nombre.value = "";
	descripcion.value = "";
	estado.value = "1";
	
	//Si habia algun campo marcado como incompleto lo ponemos a la normalidad		
	$("#campoNombre").removeClass("has-error");
	
	//Le damos el foco al primer campo a completar
	$("#nombre").focus();
}

//Este metodo se llama cuando se tiene que crear un ciclo lectivo nuevo
function crearCicloLectivo(){
	var nombre = document.getElementById("nombre");
	var descripcion = document.getElementById("descripcion");	
	var estado = document.getElementById("estado");
		
	if(nombre.value!=""){
		if(estado.value == '1'){
			var resp = confirm("Realmente desea crear al ciclo lectivo en estado vigente? Recuerde que s\u00f3lo un ciclo lectivo puede estar vigente al mismo tiempo.");
			if(resp == true){
				//Enviamos el formulario al servidor para que se procese la transaccion
				var formulario = document.getElementById("formCicloLectivo");
				formulario.submit();
				
				//Inicializamos todos campos a vacios.
				nombre.value = "";
				descripcion.value = "";
				estado.value = "0";
				
				//Si habia algun campo marcado como incompleto lo ponemos a la normalidad		
				$("#campoNombre").removeClass("has-error");
				
				//Le damos el foco al primer campo a completar
				$("#nombre").focus();
			}
		}else{
			//Enviamos el formulario al servidor para que se procese la transaccion
			var formulario = document.getElementById("formCicloLectivo");
			formulario.submit();
			
			//Inicializamos todos campos a vacios.
			nombre.value = "";
			descripcion.value = "";
			estado.value = "0";
			
			//Si habia algun campo marcado como incompleto lo ponemos a la normalidad		
			$("#campoNombre").removeClass("has-error");
			
			//Le damos el foco al primer campo a completar
			$("#nombre").focus();		
		}
	}else{
		alert("Por favor, ingrese todos los datos del ciclo lectivo que desea crear.");
		
		//Marcamos todos los campos imcompletos para que sea mas facil de visualizar.		
		if(nombre.value == "") $("#campoNombre").addClass("has-error"); else $("#campoNombre").removeClass("has-error");		
	}
}

//Este metodo se llama cuando se tiene que modificar un ciclo lectivo
function modificarCicloLectivo(){
	var nombre = document.getElementById("nombre");
	var descripcion = document.getElementById("descripcion");	
	var estado = document.getElementById("estado");
		
	if(nombre.value!=""){
		if(estado.value == '1'){
			var resp = confirm("Realmente desea modificar al ciclo lectivo al estado vigente? Recuerde que s\u00f3lo un ciclo lectivo puede estar vigente al mismo tiempo.");
			if(resp == true){
				//Enviamos el formulario al servidor para que se procese la transaccion
				var formulario = document.getElementById("formCicloLectivo");
				formulario.submit();
				
				//Si habia algun campo marcado como incompleto lo ponemos a la normalidad		
				$("#campoNombre").removeClass("has-error");
				
				//Le damos el foco al primer campo a completar
				$("#nombre").focus();
			}
		}else{
			//Enviamos el formulario al servidor para que se procese la transaccion
			var formulario = document.getElementById("formCicloLectivo");
			formulario.submit();
			
			//Si habia algun campo marcado como incompleto lo ponemos a la normalidad		
			$("#campoNombre").removeClass("has-error");
			
			//Le damos el foco al primer campo a completar
			$("#nombre").focus();		
		}
	}else{
		alert("Por favor, ingrese todos los datos del ciclo lectivo que desea modificar.");
		
		//Marcamos todos los campos imcompletos para que sea mas facil de visualizar.		
		if(nombre.value == "") $("#campoNombre").addClass("has-error"); else $("#campoNombre").removeClass("has-error");		
	}
}

//*Este metodo se llama cuando en el metodo consultar registros se cambia la seleccion en el filtro*/
function filtrarEstructura(url){
	var cicloLectivoOrigen = document.getElementById("cicloLectivoOrigen");
	var cicloLectivoDestino = document.getElementById("cicloLectivoDestino");
		
	window.location = url + "/" + cicloLectivoOrigen.value + "/" + cicloLectivoDestino.value + ".html";
}

//Los siguientes cuatro metodos se utilizan para seleccionar permisos y grupos de permisos cuando se aprietan en los checkbox
function actualizarEstructura(input){
	//Selecciona o deselecciona a todos los inputs interiores al input pasado por parametro.
	$("[id*="+input.id+"]").prop('checked', $('#' + input.id).is(':checked'));
					
	//Activa todos los inputs antecesores del input pasado por parametro
	var cadena = input.id.split("_");
	
	var idCorto = "";
	
	for (i = 0; i < (cadena.length-2); i++) { 
		idCorto += cadena[i] + "_";
		$("[id="+idCorto+"]").prop('checked', true);
	}
	
	//$("[id*="+grupo.id+"]").each(function (index, ca) {alert(ca.id);});
}

//Este metodo se llama cuando se tiene que importar los datos de un ciclo lectivo
function importarDatosCicloLectivo(){
	band=0;
	$("[id*=e_]").each(function(index, ca){
							if(ca.checked == true)
								//alert(ca.id);
								band=1;
						});
	
	if(band!=0){
		//Enviamos el formulario al servidor para que se procese la transaccion
		var formulario = document.getElementById("formCicloLectivo");
		formulario.submit();
		
		//Deseleccionamos todos los elementos
		$("[id*=e_]").prop('checked', false);
	}else{
		alert("Por favor, seleccione al menos un elemento a importar.");
	}
}

